home *** CD-ROM | disk | FTP | other *** search
/ The CICA Windows Explosion! / The CICA Windows Explosion! - Disc 2.iso / programr / wtj208.zip / FRANTZ / VB / CCINIT.C next >
C/C++ Source or Header  |  1993-04-10  |  4KB  |  184 lines

  1. /* ------------------------------ CCINIT.C ---------------------------
  2.  *    DLL initializations
  3.  * ---------------------------------------------------------------- */
  4.  
  5. #include <windows.h>
  6. #include <vbapi.h>
  7.  
  8. #include "Target.h"
  9. #include "VBTarget.h"
  10.  
  11. // ---------------------- Global Variables -------------------------
  12.  
  13. HANDLE            hLib;
  14.  
  15. // ---- Specific Properties
  16. PROPINFO PropertyXPos =
  17. {
  18.     "XPos",
  19.     DT_XPOS | PF_fGetData | PF_fSetData | PF_fSetMsg | PF_fSaveData,
  20.     OFFSETIN (TARGET, XPos),
  21.     0,
  22.     0,
  23.     NULL,
  24.     0
  25. };
  26.  
  27. PROPINFO PropertyYPos =
  28. {
  29.     "YPos",
  30.     DT_YPOS | PF_fGetData | PF_fSetData | PF_fSetMsg | PF_fSaveData,
  31.     OFFSETIN (TARGET, YPos),
  32.     0,
  33.     0,
  34.     NULL,
  35.     0
  36. };
  37.  
  38. PROPINFO PropertyType =
  39. {
  40.     "Type",
  41.     DT_ENUM | PF_fGetData | PF_fSetData | PF_fSetMsg | PF_fSaveData,
  42.     OFFSETIN (TARGET, Type),
  43.     0,
  44.     TYPE_CIRCLES,
  45.     "0 - Circles\0" "1 - Plain\0" "2 - Bitmap\0",
  46.     TYPE_MAX
  47. };
  48.  
  49. PROPINFO PropertyPicture =
  50. {
  51.     "Picture",
  52.     DT_PICTURE | PF_fGetData | PF_fSetData | PF_fSetCheck | PF_fSaveData,
  53.     OFFSETIN (TARGET, hpicPix),
  54.     0,
  55.     0,
  56.     NULL,
  57.     0
  58. };
  59.  
  60. // ---- Properties Table
  61. static PPROPINFO PropertiesCtrl1[] =
  62. {
  63.     PPROPINFO_STD_CTLNAME,
  64.     PPROPINFO_STD_INDEX,
  65.     PPROPINFO_STD_BACKCOLOR,
  66.     PPROPINFO_STD_LEFT,
  67.     PPROPINFO_STD_TOP,
  68.     PPROPINFO_STD_WIDTH,
  69.     PPROPINFO_STD_HEIGHT,
  70.     PPROPINFO_STD_VISIBLE,
  71.     PPROPINFO_STD_ENABLED,
  72.     PPROPINFO_STD_PARENT,
  73.     PPROPINFO_STD_DRAGMODE,
  74.     PPROPINFO_STD_DRAGICON,
  75.     PPROPINFO_STD_TABINDEX,
  76.     PPROPINFO_STD_TABSTOP,
  77.     PPROPINFO_STD_TAG,
  78.     PPROPINFO_STD_BORDERSTYLEON,
  79.     &PropertyXPos,
  80.     &PropertyYPos,
  81.     &PropertyType,
  82.     &PropertyPicture,
  83.     NULL
  84. };
  85.  
  86. // ---- Specific Events
  87. EVENTINFO EventChange =
  88. {
  89.     "Change",
  90.     0,
  91.     0,
  92.     NULL,
  93.     NULL
  94. };
  95.  
  96. // ---- Events Table
  97. static PEVENTINFO EventsCtrl1[] =
  98. {
  99.     &EventChange,
  100.     PEVENTINFO_STD_CLICK,
  101.     PEVENTINFO_STD_DBLCLICK,
  102.     PEVENTINFO_STD_DRAGDROP,
  103.     PEVENTINFO_STD_DRAGOVER,
  104.     PEVENTINFO_STD_GOTFOCUS,
  105.     PEVENTINFO_STD_LOSTFOCUS,
  106.     NULL
  107. };
  108.  
  109. // ---- Control Model
  110. static MODEL ModelCtrl1 =
  111. {
  112.     VB_VERSION,                        // VB Version
  113.     MODEL_fArrows | MODEL_fFocusOk,    // MODEL flags
  114.     (PCTLPROC)TargetCtlProc,        // Control Function
  115.     CS_VREDRAW | CS_HREDRAW,        // Class style
  116.     TGS_VB,                            // Default Window style
  117.     sizeof(TARGET),                    // Size of TARGET structure
  118.     IDBMP_TARGET,                    // First Bitmap for tool box
  119.     "Target",                        // Default CtlName
  120.     "VBTarget",                        // Visual Basic class name
  121.     "Target",                        // Subclassed class name
  122.     PropertiesCtrl1,                // Properties Table
  123.     EventsCtrl1                        // Events Table
  124. };
  125.  
  126. /* -------------------------- VBINITCC ------------------------------
  127.  *    Called by VB when control is loaded
  128.  *        - usVersion is VB version
  129.  *        - fRuntime is TRUE if .EXE, FALSE if VB
  130.  *        Returns:    TRUE to proceed
  131.  *                    FALSE to stop loading
  132.  * ---------------------------------------------------------------- */
  133.  
  134. BOOL FAR PASCAL _export VBINITCC (USHORT usVersion, BOOL fRuntime)
  135. {
  136. BOOL            fOk;
  137.  
  138. // ---- Registers control
  139.     fOk = VBRegisterModel (hmodDLL, &ModelCtrl1);
  140.     return fOk;
  141. }
  142.  
  143. /* -------------------------- VBTERMCC ------------------------------
  144.  *    Called when control is beeing unloaded
  145.  * ---------------------------------------------------------------- */
  146.  
  147. VOID FAR PASCAL _export VBTERMCC ()
  148. {
  149. // ---- Nothing to do
  150. }
  151.  
  152. /* -------------------------- LibMain -------------------------------
  153.  *    Called first time DLL is loaded
  154.  *        - hmod is DLL's handle
  155.  *        - segDS is DS segment
  156.  *        - cbHeapSize is HEAPSIZE in .DEF file
  157.  *        Returns        TRUE to proceed
  158.  *                    FALSE to stop loading
  159.  * ---------------------------------------------------------------- */
  160.  
  161. int CALLBACK LibMain (HINSTANCE hinst, WORD wDataSeg, WORD cbHeapSize, LPSTR lpszCmdLine)
  162. {
  163.     hmodDLL = hinst;                // Global variable
  164.  
  165. // ---- Unlocks Data segment (if LocalInit called)
  166.     UnlockData (0);
  167.  
  168. // ---- Loads DLL
  169.     hLib = LoadLibrary ("Target.dll");
  170.  
  171.     return hLib;
  172. }
  173.  
  174. /* -------------------------- WEP -----------------------------------
  175.  *    Function called when DLL is unloaded
  176.  *        - fSystemExit can be    WEP_SYSTEM_EXIT if Windows ends
  177.  *                                WEP_FREE_DLL if DLL is beeing unloaded
  178.  * ---------------------------------------------------------------- */
  179.  
  180. VOID FAR PASCAL _export WEP (BOOL fSystemExit)
  181. {
  182.     FreeLibrary (hLib);
  183. }
  184.